Controlling multi-function cooking apparatuses

ABSTRACT

Control system, method, and computer program product for partitioning machine readable recipe programs to control one or more multi-function cooking apparatuses for processing one or more food products. The system may include recipe program interface configured to receive one or more separate recipe programs for preparing food products. A partitioning module is configured to identify, in accordance with predefined partitioning rules, subsets of recipe program instructions in the one or more recipe programs. A first subset includes recipe program instructions for executing food processing steps with compatible ingredient information at temperatures below a predefined temperature threshold and a second subset includes recipe program instructions for executing food processing steps with compatible ingredient information at temperatures equal to or above the predefined temperature threshold.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims priority to, and is a continuation of,EP16179631.3, filed on Jul. 15, 2016 and entitled “System and Method forRecipe Program Generation to Control one or more Multi-Function CookingApparatuses” the entirety of which is hereby incorporated by reference.

TECHNICAL FIELD

The present disclosure generally relates to cooking apparatuses, andmore particularly, to operating one or more cooking apparatuses withrecipe program instructions controlling functions of the one or morecooking apparatuses.

BACKGROUND

Cooking apparatuses (cooking devices) have become more and moreintelligent in the recent past by integrating multiple functions intothe apparatus. For example, modern cooking devices integrate functions,such as heating, mixing, boiling, pureeing, etc., in a singlemulti-function cooking device. A cooking device typically has to beoperated with appropriate technical parameter settings (e.g.,temperature settings, rotational speed settings, etc.) to ensure properoperation. Proper operation of a cooking device as used hereinafterrefers to correct, safe and/or secure operation for producingreproducible cooking results with the cooking apparatus with regards toa particular food product. A reproducible cooking result of a particularfood product is achieved when the particular food product is produced ina repeatable manner, in repetitions with quality/quantities within apredefined tolerance range. Such a food product may include multiplefood components which may be served in one or more courses of a menu orset meal.

SUMMARY

Therefore, it is a problem to improve the efficiency of food processingfor complex food products or multi-course menus when operating one ormore multi-function cooking apparatuses with respective recipe programs.A “complex food product”, as used herein, is a food product whichincludes multiple food components that need to be prepared separatelybecause at least one food component includes ingredients which are notcompatible with the ingredients of at least one further food component,and/or because the recipe program instructions relate to food processingsteps with control parameter settings which are not compatible with thecontrol parameter settings of food processing steps of the at least onefurther food component. For example, a multi-course menu can be seen asa complex food product. The efficiency of food processing has twoaspects: the energy efficiency of the entire food processing method andthe time efficiency of the food processing method. The energy efficiencyis improved when the overall energy consumption by the food processingmethod is reduced for the preparation for the complex food product. Thetime efficiency is improved when the overall food processing time isreduced for the preparation for the complex food product. Foodprocessing steps, as used herein, include all steps performed by acooking apparatus which are performed in the context of the preparationof a food product or food component. This may also include cleaningsteps which are necessary in case of subsequent food processing stepsusing ingredients which are incompatible with the ingredients of apreceding step. Alternatively, there may be a need that a subsequentfood processing step employs a clean cooking apparatus as otherwise acooking step might not reach the desired quality.

The above technical problem is solved by a control system for one ormore multi-functional cooking apparatuses, a computer-implemented methodfor partitioning recipe programs and a corresponding computer programproduct as disclosed in the independent claims.

In one embodiment, a control system for partitioning machine readablerecipe programs to control one or more multi-function cookingapparatuses for processing one or more food products includes a recipeprogram interface configured to receive one or more separate recipeprograms for preparing one or more food products from a storagecomponent. The one or more separate recipe programs include machinereadable recipe program instructions configured to control functions ofa particular multi-function cooking apparatus for executing foodprocessing steps to prepare the one or more food products in accordancewith the one or more separate recipe programs. In an example embodiment,each separate recipe program is associated with a food product or a menucourse. In traditional execution mode, the particular cooking apparatusloads and processes the separate recipe programs one by one. That is,the recipe program which relates to a first course of the menu isprocessed first. Once the first course is prepared, the cookingapparatus loads and processes the second course separate recipe programuntil the second course is prepared, and so on.

However, the control system includes a partitioning module and agenerator module which generates a combined recipe program with programpartitions including program instructions of the separate recipeprograms in a rearranged order. Thereby, the partitioning module canidentify subsets of recipe program instructions in the one or morerecipe programs in accordance with predefined partitioning rules. Thepredefined partitioning rules include rule sets to analyze the separatedrecipe programs with regards to the ingredients for the respective foodcomponents and the control parameters for the cooking apparatus toperform the corresponding food processing steps. A particular foodprocessing step may process the same or similar ingredients like anotherfood processing step. In this case, the food processing steps could beperformed together or as a sequence because the ingredients of the firststep are compatible with the ingredients of the second step. Theinformation in a recipe program with regards to such compatibleingredients is referred to as “compatible ingredient information”hereinafter. For example, the predefined partitioning rules can beimplemented as a hierarchical decision tree which is testing eachprogram instruction of the separate recipe program regarding itspotential to contribute to a reduced food processing time and/or areduced energy consumption of the entire food preparation when therespective program instruction is rearranged in the combined recipeprogram. The partitioning module identifies at least a first subsetincluding recipe program instructions for executing food processingsteps with first compatible ingredient information, and it identifies atleast a second subset including recipe program instructions forexecuting food processing steps with second compatible ingredientinformation. In other words, the partitioning module identifies subsetsof program instructions as building blocks for recipe program partitionsof the combined recipe program wherein the subsets include programinstructions associated with food processing steps which use the same orsimilar (compatible) ingredients. When grouping food processing steps inthe subsets for the combined recipe program in accordance with theingredients, the food processing time is reduced because food processingsteps using compatible ingredients are combined and unnecessary bowlcleaning steps in between are eliminated.

In one embodiment, the recipe program instructions of the at least firstsubset relate to food processing steps performed at one or moretemperatures in a first temperature range, and the recipe programinstructions of the at least second subset relate to food processingsteps performed at one or more temperatures in a different secondtemperature range. For example, the recipe instructions of the firstsubset may include temperature control parameters with temperaturesbelow a predefined temperatures threshold (e.g., cool steps) and therecipe instructions of the second subset may include temperature controlparameters with temperatures equal to or greater than the predefinedtemperature threshold (e.g., warm steps). Multiple thresholds may bedefined to separate more than two temperature ranges. When grouping foodprocessing steps in the subsets for the combined recipe program inaccordance with the temperature control parameters, heating or coolingcycles can be avoided which has a positive impact on the overall energybalance (performance) of the food processing operation and saves energy.

The generator module is configured to generate the combined recipeprogram with recipe program instructions covering all food processingsteps associated with the one or more separate recipe programs whereinthe combined recipe program has at least a first partition comprisingthe at least first subset, and has at least a second partitioncomprising the at least second subset. In other words, the first andsecond partitions group such recipe instructions of the originalseparate recipe programs which relate to the same or similar ingredientsand/or which are associated with the same or similar control parameters(e.g., similar temperature, similar cooking time, similar rotationalspeed, etc.).

The partitions of the combined recipe program are then provided throughthe recipe program interface to the one or more multi-function cookingapparatuses for execution. In case of using a single cooking apparatus,the entire combined recipe program is provided to this cooking apparatusand the partitions are executed in the order they are included in thecombined recipe program. It may be advantageous for the overall energybalance of the combined recipe program execution to first execute thosepartitions which include the subsets with control parameters at lowertemperatures. In embodiments, where the control system is an integratedcomponent of a particular multi-function cooking apparatus (e.g., amaster device), one or more of the partitions may be provided to arecipe execution engine of the master device itself, whereas otherpartitions can be distributed to one or more further multi-functioncooking apparatus(es) (e.g., slave devices).

In one embodiment, the generator module may add, in accordance with thepredefined partitioning rules, one or more transitioning recipeinstructions to the first and/or second partition wherein a particulartransitioning recipe instruction is determined based on a comparison ofthe one or more separate recipe programs with the partitions of thegenerated combined recipe program. For example, the regrouping of recipeinstructions from the original separate recipe programs may result inthe consolidation of one or more food processing steps of the firstseparate program and the second separate program. In other words, whenpreparing for example a starter and a main course, the respectiveseparate programs may include similar or identical food processing steps(i.e., similar or identical control parameters are applied to similar oridentical ingredients). Such steps may be consolidated into a single setof program instructions in the combined recipe program applied to thecombined amount of compatible ingredients (from the first and secondseparate programs) where the control parameters are adjusted accordinglyby the partitioning module. For example, dependent on the ingredientsthe cooking time may remain constant (e.g., when preparing rice) or itmay be extended (e.g., when preparing a tomato puree where the increaseamount of tomatoes may employs a longer cooking time). In cases, where acombined recipe program step leads to an amount of a prepared foodcomponent from which only a portion is needed to continue with thecombined recipe program whereas the remaining portion is needed at alater stage of the combined program, the generator module may insert aprogram instruction that the portion used at a later stage may bepersevered in a separate container before continuing with the combinedrecipe program execution.

In another embodiment, similar to the previous embodiment, the generatormodule may remove one or more original separate recipe instructions fromthe first and/or second partition in accordance with the predefinedpartitioning rules. For example, in case similar sets of recipeinstructions in the separate recipe programs can be consolidated into asingle set of recipe instructions of the combined recipe program thenone set of the original separated recipe program instructions can becompletely removed and is not included in the partitions of the combinedprogram anymore.

In one embodiment, the generator module can merge a plurality of recipeprogram instructions of the one or more separate recipe programs withcompatible ingredient information into a single recipe programinstruction of the combined recipe program. For example, the mergedsingle recipe program instruction of the combined recipe program caninclude a food processing time control parameter adjusted in accordancewith one or more predefined adjustment rules.

In one embodiment, the particular cooking apparatus may be equipped withtwo or more heating-and-stirring elements which can be alternativelymounted on the cooking apparatus. For example, the cooking apparatus mayregister the available equipment with the control system so that thecontrol system is aware about the multiple heating-and-stirringelements. In this embodiment, the partitioning module may take intoaccount that various partitions of the combined recipe program may beassigned to different heating-and-stirring elements. For example, thepartitions including the cool steps may be assigned to a firstheating-and-stirring element and the partitions including the warm stepsmay be assigned to a second heating-and-stirring elements. Otherconsiderations may determine the assignment of a particular partition toa particular heating-and-stirring element. For example, rinsing orcleaning steps may be avoidable when using differentheating-and-stirring elements for different food components whichinclude incompatible ingredients. The assignment of a particularpartition to a particular heating-and-stirring element is provided tothe cooking apparatus together with the combined recipe program so thatthe cooking apparatus will execute a first partition with at least afirst heating-and-stirring element and a second partition with at leasta second heating-and-stirring element. The generator module may inserttransitioning instructions indicating the need to change theheating-and-stirring elements mounted on the cooking apparatus after theappropriate food processing steps.

In one embodiment, multiple multi-function cooking apparatuses may beused for jointly processing the food preparation of a complex foodproduct or menu. In this embodiment, the available cooking apparatus mayregister with the control system so that the control system is aware ofthe available equipment. In this embodiment, parallel cooking can beenabled by parallelizing the execution of recipe programs steps whichcan be performed independently. Independent performance of cooking stepsis possible when a first sequence of consecutive recipe programinstructions has no immediate impact on a second sequence of consecutiverecipe program instructions. For example, the program instructions for adessert course will likely not interfere with program instructions for astarter course. Therefore, the respective partitions of the combinedrecipe program may be executed in parallel on two registered cookingapparatuses which reduces the overall food processing time of thecombined recipe program. In this embodiment, the partitioning moduleassigns each identified partition of the combined recipe program to aregistered cooking apparatus. The generated partitions are then deployedthrough the recipe program interface to corresponding cooking apparatusfor execution according to the assignment(s). This embodiment may becombined with the previous embodiment in that for each of the registeredcooking apparatuses one or more heating-and-stirring elements may beregistered with the control system. In this case, the partitions may beassigned to pairs of cooking apparatus and heating-and-stirring elementso that a particular cooking apparatus may receive one or morepartitions of the combined recipe program which make use of one or moreheating-and-stirring elements of this cooking apparatus.

In an alternative embodiment, a computer-implemented method is providedfor partitioning machine readable recipe programs for one or moremulti-function cooking apparatuses for processing one or more foodproducts. The method can be executed by the control system. The methodincludes: receiving, from a storage component, one or more separaterecipe programs for preparing one or more food products wherein the oneor more separate recipe programs include machine readable recipe programinstructions configured to control functions of a particularmulti-function cooking apparatus for sequentially executing foodprocessing steps to prepare the one or more food products in accordancewith the one or more separate recipe programs; in accordance withpredefined partitioning rules using at least account temperature controlparameters of particular recipe program instructions and ingredientinformation associated with the particular recipe program instructions,identifying, by a program analyzer component, subsets of recipe programinstructions in the one or more recipe programs wherein at least a firstsubset includes recipe program instructions for executing foodprocessing steps with first compatible ingredient information, and atleast a second subset includes recipe program instructions for executingfood processing steps with second compatible ingredient information;generating a combined recipe program with recipe program instructionscovering all food processing steps associated with the one or moreseparate recipe programs wherein the combined recipe program has atleast a first partition comprising the at least first subset, and has atleast a second partition comprising the at least second subset; andproviding the first and second partitions to the one or moremulti-function cooking apparatuses for execution.

In one embodiment, the recipe program instructions of the at least firstsubset relate to food processing steps performed at one or moretemperatures in a first temperature range, and the recipe programinstructions of the at least second subset relate to food processingsteps performed at one or more temperatures in a different secondtemperature range.

In one embodiment, the method further includes adding, in accordancewith the predefined partitioning rules, one or more transitioning recipeinstructions to the first and/or second partition wherein a particulartransitioning recipe instruction is determined based on a comparison ofthe one or more separate recipe programs with the partitions of thegenerated combined recipe program.

In one embodiment, the method further includes removing, in accordancewith the predefined partitioning rules, one or more original separaterecipe instructions from the first and/or second partition wherein aparticular original separate recipe instruction is determined based on acomparison of the one or more separate recipe programs with thepartitions of the generated combined recipe program.

In one embodiment, the first and second partitions are provided to theparticular cooking apparatus and the first partition is to be executedwith at least a first heating-and-stirring element of the particularcooking apparatus, and the second partition is to be executed with atleast a second heating-and-stirring element of the particularmulti-function cooking apparatus.

In one embodiment, the first partition is provided to the particularmulti-function cooking apparatus be executed with at least a firstheating-and-stirring element of the particular multi-function cookingapparatus, and the second partition is provided to a furthermulti-function cooking apparatus to be executed to with a at least asecond heating-and-stirring element of the further multi-functioncooking apparatus. In this embodiment, the program analyzer can usepredefined partitioning rules to determine dependencies between foodprocessing steps in that some food processing steps may prepare a foodcomponent which is used as input for further food processing steps. Thecombined recipe program can then be partitioned in that a firstpartition includes recipe program instructions configured to completeprocessing of a particular food component before the execution of afurther partition starts on the further multi-function cooking apparatuswherein the further multi-function cooking apparatus uses the particularfood component as an input. This ensures proper synchronization of thefood processing steps when executed in a distributed environment withmore than one multi-function cooking apparatus where parallel executionis enabled.

The predefined partitioning rules further include rules to re-arrangefood processing steps so that the re-arranged food processing stepsreduce the aggregated energy consumption for the preparation of the oneor more food products when operating the one or more multi-functioncooking apparatuses at different temperatures. This is achieved bygrouping and consolidating recipe program instructions of the originalseparate recipe programs for compatible ingredients in the combinedrecipe program dependent on their temperature control parametersettings.

Cleaning/rinsing steps of the heating-and-stirring element(s) areconsuming additional resources in terms of food processing time, waterconsumption and energy consumption (in case the cleaning is performed atelevated temperatures). Therefore, in one embodiment, the method furtherallows to reduce the number of cleaning steps required by the combinedrecipe program versus the separate programs. In this embodiment, theprogram analyzer analyzes the partitions for recipe instructions relatedto cleaning steps of the original separate recipe programs andrearranges food preparation steps of the combined recipe program toeliminate at least one of the original recipe instructions related to acleaning step.

In a further embodiment, computer program instructions may be stored ona computer readable medium forming a computer program product which canbe loaded into a memory of the control system and executed by one ormore processors of the control system to execute the previouslydisclosed method and perform the functions of the previously disclosedcontrol system.

Further aspects of the disclosed subject matter will be realized andattained by means of the elements and combinations particularly depictedin the appended claims. It is to be understood that both the foregoinggeneral description and the following detailed description are exemplaryand explanatory only, and are not restrictive of the disclosure asdescribed.

In some embodiments, functions of multi-functional cooking apparatusesare controlled by one or more recipe programs which have instructionsthat are sequentially executed to arrive at the prepared food product ormenu. For example, a separate recipe program is loaded into the cookingapparatus for separately preparing each course of the menu and thecourses are prepared by processing the separate recipe programs in thecorresponding sequence.

Some multi-functional cooking apparatuses are equipped with more thanone heating-and-stirring element wherein, of course, only oneheating-and-stirring element at a time can be mounted to the cookingapparatus. That is, only sequential processing of the recipeinstructions is possible even with multiple heating-and-stirringelements available. Nevertheless, using more than oneheating-and-stirring element with a cooking apparatus according to thepredefined recipe program may result in a less efficient food processingmethod than possible with the available equipment. An example of aheating-and-stirring element is a bowl with a heating plate at itsbottom and a stirring element driven by a motor of the cookingapparatus. A heating-and-stirring element, as used herein, may also bean assembly of a heating element and a stirring element. It is notnecessary that the two elements form a single component. They may beseparate elements which are used together with the cooking apparatus toperform the heating and stirring functions, respectively.

In some embodiments, two similar cooking apparatuses are available atthe same time for preparing one or more food products. In this case, forexample when a whole menu is prepared, the cooking apparatuses may beused in parallel to speed up the cooking process. However, simplypreparing different food products of a menu on multiple cookingapparatuses in parallel may lead to poor synchronization of dependentcooking steps. Further, there is potential for improving the efficiencyof the food processing method with regards to the overall energyconsumption.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A illustrates a particular multi-function cooking apparatus usinga combined recipe program for preparing a complex food product or menuaccording to one embodiment of the present disclosure.

FIG. 1B illustrates a multi-cooking apparatus scenario distributing acombined recipe program to two cooking apparatuses for preparing acomplex food product or menu according to one embodiment of the presentdisclosure.

FIG. 2 is a simplified component diagram of a control system forproviding a combined recipe program to control one or moremulti-function cooking apparatuses according to one embodiment of thepresent disclosure.

FIG. 3 illustrates an example of partitioning rules as a simplified flowchart to generate a combined recipe program for controlling one or moremulti-function cooking apparatuses according to one embodiment of thepresent disclosure.

FIG. 4 illustrates and example of a predefined partitioning rule setaccording to one embodiment of the present disclosure.

FIG. 5A illustrates an example of the structure of a separate recipeprogram.

FIG. 5B illustrates an example of the structure of a combined recipeprogram.

FIG. 6 is a diagram that shows an example of a generic computer deviceand a generic mobile computer device, which may be used in embodimentsof the present disclosure.

DETAILED DESCRIPTION

FIG. 1A illustrates a first embodiment 291 with a particularmulti-function cooking apparatus 201 using a combined recipe program 300c 1 for preparing a complex food product or menu according to oneembodiment of the present disclosure. The combined recipe program isgenerated from one or more separate recipe programs in accordance withpredefined partitioning rules to provide a recipe program which executeswith improved efficiency regarding the food processing time and energyconsumption when compared to the original separate recipe program(s).The cooking apparatus 201 is operated with a heating-and-stirringelement (HSE) 205 which is mounted on the cooking apparatus 201 whenperforming cooking functions in accordance with the combined recipeprogram 300 c 1. Optionally, a further HSE 206 may be used together withthe same cooking apparatus. For example, the first HSE 205 may containan intermediate food component which is later to be continued. Then thefirst HSE 205 may be removed and replaced by the further HSE 206. Thecombined recipe program 300 c 1 has at least two partitions 301-1, 302-1with recipe program instructions being grouped into subsets related tocold food processing steps and warm food processing steps, respectively.In one embodiment, one partition 301-1 may be assigned to foodprocessing steps performed when using the first HSE 205 and the otherpartition 302-1 may be assigned to food processing steps performed whenusing the further HSE 206. In this embodiment, the first HSE 205 may beused for performing the cold food processing steps and the further HSE206 may be used for performing the warm food processing steps (or viceversa). However, all program instructions of the combined recipe programare processed by the same cooking apparatus 201.

FIG. 1B illustrates a second embodiment 292 with a distributed cookingscenario where a combined recipe program 300 c 2 is distributed to twocooking apparatuses 201, 202 for jointly preparing a complex foodproduct or menu according to one embodiment of the present disclosure.Each cooking apparatus 201, 202 has at least one heating-and-stirringelement 205, 207, respectively. In such a distributed cooking scenario,the combined recipe program 300 c 2 may include additional assignmentinformation with regards to the partitions 301-2, 302-2. The additionalassignment information can include a cooking apparatus identifier whichindicates to which cooking apparatus the respective partition of thecombined recipe program 300 c 2 is to be distributed for execution. Theadvantage of the distributed cooking scenario vs. the single cookingapparatus scenario in FIG. 1A is that food processing steps of thecombined recipe program which do not have dependencies on other foodprocessing steps of the combined recipe program may be executed inparallel on two or more cooking apparatuses, thus reducing the overallfood processing time associated with the execution of all foodprocessing steps. In cases where the partitions 301-2, 302-2 of thecombined recipe program are defined according to partitioning criteriataking into account the independence of food processing steps within thecombined recipe program, the distributed partitions can be executed inparallel by the corresponding cooking apparatuses and a reduction of thefood processing time can be achieved. In cases where dependencies existbetween food processing steps which are distributed over partitionsexecuted by different cooking apparatuses, a synchronization mechanismmay ensure that the combined recipe program is generated to allow properexecution of the food processing steps. That is, in case a foodcomponent is prepared by the multi-function cooking apparatus 201 inaccordance with the program instructions of the partition 301-2 and thisfood component is used as an input for the food processing steps to beexecuted by the cooking apparatus 202 when executing the partition302-2, then the synchronization mechanism generates the two partitions301-2, 302-2 in such a way that the execution of the partition 302-2will not start before the termination of the execution of partition301-2.

Details of the generation of the partitions 301-1, 302-1 and 301-2,302-2 are disclosed in the following detailed description.

FIG. 2 is a simplified component diagram of a control system 100 forproviding a combined recipe program to control one or moremulti-function cooking apparatuses according to one embodiment of thepresent disclosure. FIG. 2 will be described in the context of thesimplified flowchart of FIG. 3 for the method 1000 being executed by thecontrol system 100. The following description makes use of referencenumbers referring to FIG. 2 and FIG. 3.

The control system 100 is communicatively coupled with one or morecooking apparatuses 201, 202 via recipe program interface (RPI) 120. Theinterface can have any appropriate interface type supporting theexchange of data between the cooking apparatuses 201, 202 and thecontrol system 100. For example, a serial interface (e.g., a USBinterface) or a parallel interface (e.g., an IEEE 1284 interface), or aninternal communication bus may be used. The control system 100 can be anintegrated component of one of the cooking apparatuses (e.g., 201) or itcan be implemented remotely (e.g., on a mobile device like a smartphoneor tablet PC, or on a remote server which may communicate with thecooking apparatus(es) over the Internet or mobile communicationstandards or wired communication standards or wireless communicationstandards). A particular cooking apparatus 201 can include a memorycomponent 230 to store recipe program instructions of a particularrecipe program which is provided by the interface 120 of the controlsystem 100. The instructions are to be processed by the correspondingrecipe execution component 220. For example, the recipe executioncomponent 220 can include an interpreter for interpreting the recipeinstructions. The basic cooking functions are then performed byrespective hardware components 240 (e.g., motor, heating means, scales,etc.) of the cooking apparatus under the control of the executioncomponent 220. Basic cooking functions using different hardware may beperformed in parallel (e.g., heating and stirring). That is, theexecution component 220 transforms the program instructions into controlsignals applied to the hardware components 240. A person skilled in theart can build a corresponding interpreter for this purpose. Persons ofskill in the art can implement the mapping of program instructions tohardware control signals, for example, by using instructions inmachine-code, for example, that control the hardware componentsdirectly. In case the cooking apparatus receives adjusted recipe programinstructions from the control system 100, the adjusted recipe programinstructions may replace the corresponding original program instructionsstored in the memory component 230. The cooking apparatus 201 furtherhas input/output (I/O) means 210 which are configured to provideinformation and/or guiding instructions from the cooking apparatus to auser and to receive user commands from the user.

Via the recipe program interface 120, the control system 100 is furthercommunicatively coupled with the data storage device 400 storingseparate recipe programs for the cooking apparatus(es). A separaterecipe program, as used herein, is a recipe program including recipeinstructions which are designed to be executed on one cooking apparatusto perform food processing steps for preparing a food product.Typically, a separate recipe program is directed to the preparation of asingle course, such as for example, a starter (appetizer), a main dishor a dessert. The data storage device 400 can be any device with amemory for storing data in electronic format (e.g., a memory stick/card,a memory disk on a remote server, etc.). In some embodiments, the datastorage device may be physically connected with the cooking apparatus(e.g., via a USB plug). In other embodiments, the data storage devicemay be connected via an appropriate network connection (e.g., LAN, WANor WLAN connection). The data storage device may have a database or afile system to store recipe programs which are intended to be executedby the cooking apparatus. An example of a possible structure for aseparate recipe program example is disclosed in the context of FIG. 5A.A recipe program is a digital recipe which includes a plurality ofcontrol instructions (referred to as recipe program instructions orprogram instructions herein) with technical parameter settings tocontrol food processing steps performed by cooking functions 240 of thecooking apparatus 201, 202 when the recipe program is executed by therecipe execution component 220 of the cooking apparatus.

For example, the control system 100 can receive 1100, via the recipeprogram interface 120, one or more separate recipe programs 300 forpreparing one or more food products. The separate recipe program(s) maybe stored on the data storage device 400 and are configured to beexecuted by the recipe execution engine 220 of a particular cookingapparatus 201. The separate recipe program(s) are configured to providereproducible cooking results for the food products each time when therecipe execution is completed.

When preparing complex food products which may include multiple courses,typically a plurality of separate recipe programs may be retrieved fromthe data storage where ach separate recipe program corresponds to aseparate course or food component of the complex food product.Typically, the separate recipe programs are executed one by one on thecooking apparatus 201. This may cause many heating or cooling cycles andmay include a plurality of cleaning steps for the HSE(s) 205, 206 usedwith the cooking apparatus 201. Performing the food processing steps ina different order while grouping food processing steps across multipleseparate recipes can lead to a reduction in energy consumption and to areduction of the overall food processing time when preparing the entirecomplex food product.

The control system has a program analyzer module 130 which is configuredto generate from the separate recipe program(s) 300 a combined recipeprogram 300 c. The combined recipe program includes program instructionswhich cover all food processing steps of the original separate recipeprograms. This does not mean, that all original recipe programinstructions from the separate recipe programs are present in thecombined recipe program again. Rather, multiple program instructions,which are related to similar food processing steps, may be consolidatedinto a single program instructions with adjusted control parameters sothat the same food components as before (in the separate recipeprograms) are now prepared through the consolidated program instruction.Similar food processing steps are steps with identical or similarcontrol parameter settings applied to similar or identical ingredients.Further, to cover all food processing steps of the original separaterecipe programs in the combined recipe program, the module 130 may alsoinclude to insert transitioning program instructions to bridge subsetsof rearranged program instructions in that the context of the programinstructions—if lost through the cross-recipe consolidation of separateprogram instructions—is reestablished in the combined recipe program.For example, when two instructions from a starter program and a maincourse program are consolidated by preparing the total amount of thesame food component by a single instruction instead of two separateinstructions, then a transitioning program instruction may be insertedto reestablish the context of the food component for the starter in thecombined program. In other words, a program instruction may be insertedwhich instructs to reduce the amount of the food component by the amountwhich is needed later for the main course before the food processing ofthe starter is continued. To provide such functions, the programanalyzer 130 has a partitioning module 131 and a generator module 132.When consolidating or merging two separate recipe program instructionswhich are related to preparing the same or similar food component basedon the same or similar ingredients the generator module may usepredefined adjustment rules for adjusting the time control parameter inaccordance with such adjustment rules. For example, the amount ofingredients used by the separate recipe programs is simply summed up toresult in the total amount of ingredients needed for the consolidatedrecipe program instruction. In some cases the predefined adjustment rulemay result in a time control parameter for the consolidated recipeinstruction which is equal to the time control parameter of one oforiginal separate recipe program instructions. In other cases, the timecontrol parameter may be increased in comparison to the original recipeprogram instructions. For example, the chopping of onions may take thesame time for 40 g and for 80 g. However, above a certain thresholdamount, the time required to achieve a reproducible chopping result mayincrease (non-linear or linear increase) with the quantity of therespective ingredient. For example, above 100 g of onions, the choppingtime may increase by a second with every additional 50 g added. For anyparticular ingredient one or more predefined adjustment rules may bestored for each type (chopping, cooking, stirring, etc.) of foodprocessing step. The adjustment rules describe the dependency of thetime control parameter on the amount (quantity) of the ingredient. Thepredefined adjustment rules may be stored in a memory portion of thecontrol system or at a remote storage location accessible by the controlsystem.

The partitioning module 131 can identify 1200 subsets of recipe programinstructions in the one or more separate recipe programs 300 inaccordance with predefined partitioning rules 150. The predefinedpartitioning rules 150 may be stored locally in the control system 100or they may be stored at a remote storage location from where they canbe retrieved by the program analyzer 130. The predefined partitioningrules 150 include rules which enable the partitioning module to identifyat least a first subset including recipe program instructions forexecuting food processing steps with compatible ingredient informationat temperatures below a predefined temperature threshold. Further therules enable the partitioning module to identify at least a secondsubset including recipe program instructions for executing foodprocessing steps with compatible ingredient information at temperaturesequal to or above the predefined temperature threshold. In other words,the partitioning rules check the original separate recipe programs(i.e., cross-program check) for instructions which are related to thepreparation of identical or similar food components with identical orsimilar (compatible) ingredients and with identical or similar foodprocessing steps (identical or similar control parameter settings). Oncethe partitioning module has identified such program instructions it cangroup the instructions into cold food processing steps (first subset)and warm food processing steps (second subset). When grouping foodprocessing steps performed at low temperatures (below the predefinedtemperature threshold, e.g., the room temperature or the temperature ofthe ingredients) and food processing steps performed at hightemperatures (equal or above the predefined temperature) unnecessaryheating and cooling cycles can be eliminated. There may be multiplepre-defined temperature thresholds for increasing the granularity of thegrouping. For example the second subset may include food processingsteps performed at a medium temperature (e.g., between room/ingredienttemperature and 70° C.), and a third subset may include food processingsteps performed at a temperature beyond the second predefinedtemperature threshold (e.g., >70° C.). A higher granularity of thesubsets with regards to the temperature range covered by a subset maylead to further improvements in the reduction of energy consumption.

The generator module 132 generates 1300 the combined recipe program 300c with recipe program instructions covering all food processing stepsassociated with the one or more separate recipe programs 300 wherein thecombined recipe program 300 c has at least a first partition 301comprising the at least first subset, and has at least a secondpartition 302 comprising the at least second subset. That is, thecombined recipe program has at least two partitions wherein onepartition is covering the cold food processing steps and anotherpartition is covering the warm food processing steps. In embodimentsusing multiple temperature thresholds more than two partitions areincluded where each partition can cover food processing steps performedat a corresponding temperature range. Each partition can includemultiple subsets of program instructions corresponding to groups of foodprocessing steps performed at the corresponding temperature range butwhere the various groups are associated with different food componentswith incompatible ingredients. In some embodiments, multiple partitionscan be generated in relation to the same temperature range. For example,in the distributed cooking scenario (cf. FIG. 1B), multiple cookingapparatuses may be used to perform food processing steps in the sametemperature range in parallel to achieve a further reduction of theoverall food processing time. In such embodiments, a correspondingpartition is generated for each cooking apparatus. That is, in caseswhere the partitioning module 131 has assigned an identified subset tobe executed by a particular cooking apparatus, a correspondingidentifier of the particular cooking apparatus is appended to thecorresponding combined recipe program steps. The generator module 132can then use this information to generate a respective partition.

In embodiments supporting distributed cooking or cooking apparatus usingmore than one HSE, the control system 100 may further use an equipmentregistry module 160 to register the available equipment. The equipmentregistry module 160 can be an integrated component of the control system100 or it may be operated by a remote device (e.g., a server running aregistration service). The registration data is then provided to theprogram analyzer 130. For example, the cooking apparatuses 201, 202 maybe able to register with the equipment registry module 160 and alsoindicate the availability of their HSEs 205, 206. Once the registrationdata is available to the program analyzer 130, the partitioning module131 can take it into account when identifying subsets and assigning thesubsets to the available cooking equipment. FIG. 5B illustrates andexample of a combined recipe program structure with such assignmentinformation.

The partitions 301, 302 of the combined recipe program 300 c are thenprovided 1400 through the recipe program interface 120 to the one ormore multi-function cooking apparatuses 201, 202 for execution. Indistributed cooking scenarios, the routing of the partitions to thecorrect cooking apparatuses is enabled by the cooking apparatusidentifier assigned to the partitions.

FIG. 4 illustrates an example of partitioning rules as a simplified flowchart 2000 to generate a combined recipe program for controlling one ormore multi-function cooking apparatuses according to one embodiment ofthe present disclosure.

In the example, a first rule is implemented as cross-recipeidentification 2100 of cold and warm food processing steps in theseparate recipe programs. That is, one or more temperature thresholdsdefine at least two temperature ranges to which recipe instructions ofthe separate recipes are assigned dependent on their temperature controlparameter settings. When using at least two temperature thresholds,various gradations of cold and warm are created. Recipe program stepswithout particular temperature control settings but following on aninstruction with such a temperature control setting may be assigned tothe same group of food processing steps as the anteceding instructionwith a temperature setting unless the cooking context is broken (e.g.,the HSE is cleaned in between, the ingredients are exchanged, liquidsare added, a long wait time interval occurs between consecutive foodprocessing steps, etc.)

In the example, a second rule controls the reordering 2200 of foodprocessing steps of the menu recipe programs so that cold foodprocessing steps are executed at first and warm food processing stepsare executed after the cold food processing steps. In case of more thanone temperature threshold, the food processing steps may be reorderedaccording to the assigned temperature intervals in ascending order(e.g., cold middle warm). As a result, all recipe program instructionsfor the food processing steps of the original separate recipe programsare assigned to a particular group of separate recipe instructions inaccordance with temperature values at which the food processing stepsare to be performed.

In the example, the block 2001 of rules relates to rules which areapplied to each group (e.g., cold, middle, warm, etc.) of separaterecipe instructions. In other words, the rules in block 2001 may befirst applied to cold food processing steps and then the group ofprocessing steps assigned to the next higher temperature range, and soon. This can be compared to a “for loop” 2300 like structure. That is,for each group the following rules are performed. Thereby, rulesillustrated by dashed frames are seen as optional rules.

The first group rule of the example relates to checking 2310 acrossseparate recipe programs if same or similar ingredients are used indifferent food processing steps and if the processing of the ingredientsis similar (i.e., compatible in that similar control parameter valuefor, e.g., speed, processing time, temperature, etc., are used). If thisis the case, the corresponding recipe instructions of the originalseparate programs are rearranged 2311 into combined steps of thecombined recipe program. This may include the adjustment 2312 of controlparameters in case where two or more separate program instructions areconsolidated into a single combined recipe instruction. For example theamount of ingredients used by the separate program instructions resultsin an aggregate amount for the combined instruction. Further controlparameters may be adjusted. For example, when the amount is increasedthe food processing time control parameter may be adjusted accordinglyfor the combined recipe instruction. The adjustment may be based onpredefined adjustment rules (e.g., lookup tables or characteristiccurves/diagrams providing interpolation of control parameter settingsunder changing conditions). In some cases, where original separaterecipe instructions are rearranged according to the preceding rules itmay be necessary to introduce 2313 transitioning steps to re-establishthe original context for the rearranged instructions. That is, if thepreparation of a given food component occurs in various separate recipeprograms, this preparation may be consolidated into a single combinedfood processing step. However, the later use of the food component whichis now produced in a consolidated food processing step of the combinedprogram may include insertion of transitioning instructions regardingthe subsequent handling of the combined food component amount (e.g.,save ⅓ of the food component in a container for later use).

A second group rule may relate to the analysis 2320 of the respectivegroup for any cleaning steps included in the group. It may be possiblethat because of the earlier rearrangement 2311 and consolidation ofrecipe program instructions some of the cleaning steps as defined in theseparate recipe programs become dispensable in the combined recipeprogram. In this case, the unnecessary cleaning steps may simply beremoved from the combined recipe program. In addition, if cleaning stepsare identified in a particular group, a further rearrangement 2321 ofthe combined recipe program steps can be performed such that the numberof cleaning steps is reduced. For example, combined recipe instructionsmay still include cleaning steps which originated from a change ofingredients from one separate recipe program to another while in thecombined recipe program steps may be rearranged in such a way that theyincrementally build on the ingredients of the antecedent steps. This mayeliminate the need for some of the original cleaning steps. After thisstep, the “for”-structure 2001 is repeated for the next group (e.g.,cold warm).

In the following a particular example is described which is based onrecipe programs for preparing a menu with three courses with each courseincluding four meal portions. Thereby, the recipe programs are designedto be executed by one cooking apparatus equipped with oneheating-and-stirring element. The menu includes a starter (tomato soup),a main course (tuna tomato sauce served with plain rice), and a dessert(berry foam). For preparing this menu, the recipe data storage providesthree separate recipe programs wherein each recipe program is associatedwith one of the courses. In the example, control instructions relate tothe heating and stirring functions of the cooking apparatus which areimplemented/executed by the heating and stirring element. The controlinstructions can specify a control parameter for the temperature of theheating function, a control parameter for the rotational speed of thestirring function, and a time interval during which said controlparameters are to be applied for the respective cooking stepcorresponding to program instructions. Further control parameters may beused for additional cooking functions of the cooking apparatus. Thenotation for the set of control parameters used in this example wherethe heating and stirring function are used simultaneously istime/temperature/speed where time stands for said time interval,temperature stands for the temperature control value, and speed standsfor the speed control value. The notation for the set of controlparameters used in this example where only the stirring function is usedis time/speed.

The starter recipe program includes instructions which includeinformation about the ingredients needed for the respective course andcontrol instructions for controlling the respective cooking functions ofthe cooking apparatus. For example, the original recipe program for thefirst course (starter) tomato soup includes the following list ofingredients (tsp=tea spoon):

-   1 garlic clove-   80 g onions-   1 carrot, cut in pieces-   30 g butter-   500 g tomatoes, cut into quarters-   1 tsp salt-   1 tsp dried oregano-   300 g water-   1 stock cube-   100 g cream-   2-4 fresh basil leaves

The food preparation steps of the starter recipe program may include thefollowing control instructions:

-   1.1 Place garlic clove, onions and carrot into mixing bowl and chop    3 sec/speed 5. Scrape down sides of mixing bowl with spatula.-   1.2 Add butter and sauté 3 min/120 C/speed 1.-   1.3 Add tomatoes, salt and dried oregano and chop 5 sec/speed 5.-   1.4 Add water, stock cube and cook 15 min/100 C/speed 2.-   1.5 Add cream, basil leaves and blend 1 min/speed 7 with measuring    cup on lid.-   1.6 Serve warm-   1.7 Bowl is rinsed out with tap lukewarm water and ready to be used.    (not washed)

For example, the original recipe program for the second course (maincourse) tuna tomato sauce served with plain rice includes the followinglist of ingredients:

-   1 garlic clove-   80 g onions-   1 carrot, cut in pieces-   30 g butter-   500 g tomatoes, cut into quarters-   1 tsp salt-   1 tsp dried oregano-   800 g water-   1 stock cube-   300 g plain white rice-   100 g yoghurt-   2 fresh basil leaves-   360 g of tuna in oil (3 small tins)

The food preparation steps of the main course recipe program may includethe following control instructions:

-   2.1 Place garlic clove, onions and carrot into mixing bowl and chop    3 sec/speed 5. Scrape down sides of mixing bowl with spatula.-   2.2 Add butter and sauté 3 min/120 C/speed 1.-   2.3 Add tomatoes, salt, and dried oregano and chop 5 sec/speed 5.-   2.4 Add in the bowl 200 g of water, stock cube.-   2.5 In steam cooker place a rectangular aluminum container with the    dry rice and 600 g of water, salt to taste and cover it with an    aluminum foil, close the steam cooker and place it on the TM bowl    and cook 30 min/100 C/speed 1. Set steam cooker aside.-   2.6 Add yogurt, basil leaves and blend 1 min/speed 7 with measuring    cup on lid.-   2.7 Add the tuna and mix only with aid of spatula.-   2.8 Serve the tuna sauce warm over the cooked rice.-   2.9 Clean bowl

For example, the original recipe program for the third course (dessert)berry foam includes the following list of ingredients:

-   140 g sugar-   500 g mixed frozen red berries-   20 g lemon juice-   1 egg white

The food processing steps of the dessert recipe program may include thefollowing control instructions:

-   3.0 Comment: A clean (and cold) bowl is needed for dessert recipe-   3.1 Place sugar into mixing bowl and pulverize 15 sec/speed 10.-   3.2 Add mixed frozen red berries, lemon juice and egg white into    mixing bowl. Blend with aid of spatula 40 sec/speed 5.-   3.3 Insert butterfly whisk and mix 3 min/speed 3.5.-   3.4 Reserve in the refrigerator until ready to serve.

TABLE 1 Separate Preparation Steps Sek. Min. Temp. Speed 1.1 3 5 1.2 3120 1 1.3 5 5 1.4 15 100 2 1.5 1 7 1.6 1.7 2.1 3 5 2.2 3 120 1 2.3 5 52.4 2.5 30 100 1 2.6 1 7 2.7 2.8 2.9 3.1 15 10 3.2 40 5 3.3 3 3.5 3.4total 71 56 total sum 57.18 (min)

Table 1 summarizes the control parameters of all program instructions ofthe three original recipe programs for the three courses when beingconsecutively performed. The total execution time adds up to 57.18 minfor the above example.

FIG. 5A illustrates an example of the structure of the separate starterrecipe program 501 including the program steps 1.1 to 1.3 by way ofexample. For each step (program instruction) the ingredients included inthe respective step are listed in the field “ingredient”. The field“text” includes the instructions which are displayed by the executingcooking apparatus to the user (e.g., by a local display of the cookingapparatus or through a remote display on a smartphone or tabletcomputer). The field “code instruction” includes the control parametersetting for the respective program step in a machine readable format sothat the execution engine of the cooking apparatus can execute theinstructions to perform the corresponding cooking function.

Recipe Partitioning Rules

The order in the original menu recipe is used as default order for thefood processing steps. The default order is then rearranged by theprogram analyzer. A cross-recipe re-partitioning of the three recipeprograms is thereby performed in accordance with the rules defined bythe partitioning constraints. Examples for such rules which areapplicable to the three course menu example are given in the following.A person skilled in the art may define further partitioningrules/constraints for other food products/menus.

A. Cross-recipe identification of cold and warm food processing steps inthe separate recipe programs. Thereby, warm food processing steps may bedefined as all steps where the heating function of the cooking apparatusis used. In an alternative embodiment, warm food processing steps maydefined as all steps where the heating control parameter is at leastabove a predefined threshold value (e.g., 25° C.). All remaining foodprocessing steps may be considered to be cold food processing steps. Forthe example with the original separate preparation of the three courses(cf., Table 1), the food processing steps 1.2, 1.4, 2.2, and 2.5 areidentified as warm food processing steps.

B. Reordering of food processing steps of the menu recipe programs sothat cold food processing steps are executed at first and warm foodprocessing steps are executed after the cold food processing steps.Optionally, the cold food processing steps may be assigned to the firstheating-and-stirring element and the warm food processing steps may beassigned to the second heating-and-stirring element. Warm foodprocessing steps may be further partitioned into sub-groups with equaltemperature control parameters. For example, steps 1.2/2.2 may form afirst sub-group 120° C., and steps 1.4/2.5 may form a second sub-group100° C.

C. For the cold food processing steps:

-   -   a. Check if same or similar ingredients are used in different        preparation steps and if the processing of the ingredients is        similar (i.e., similar control parameter values for e.g., speed,        processing time, temperature, etc.)    -   b. If so, combining related steps        -   i. in case a larger amount of ingredients is used the            processing time may be adapted based on threshold values        -   ii. rearrange related food processing steps        -   iii. introduce transitioning steps in the recipe based on            the original amount distribution of ingredients    -   c. Analyze cold menu preparation steps for any cleaning steps        -   i. rearrange preparation steps of the recipe, under            consideration of required cleaning steps so that the number            of cleaning steps is minimized

D. For the warm food processing steps

-   -   a. Check if same ingredients are used in different preparation        steps and if the processing of ingredients is similar (e.g.        control parameter value for temperature, processing time,        processing speed)    -   b. If so, combining related steps        -   i. In case a larger amount of ingredients is used the            processing time may be adapted based on threshold values        -   ii. rearrange related preparation steps        -   iii. introduce transitioning steps in the recipe based on            the original amount distribution of ingredients    -   c. Analyzing warm menu preparation steps for any cleaning steps        -   i. rearrange preparation steps of the recipe, under            consideration of required cleaning steps so that number of            cleaning steps is minimized

The entire rule set may be processed at the beginning of the foodprocessing or it may be processed first for the cold processing stepsand afterwards for the warm processing steps. The partitioning of therecipe can be performed on the cooking apparatus or on a remote (e.g.server/cloud) system or in a combined fashion. In case the partitioningis done on a remote system the modified recipe can be transferredcompletely upon completion of the partitioning or it may be transferredstep by step or block wise before the execution of the respectiverearranged recipe program instructions.

The application of the partitioning rules/constraints to the originalthree separate recipe programs may result in the followingre-partitioned combined recipe program which includes all stepsnecessary to prepare the entire three course menu. For example, for afirst partition PI of the combined recipe program, the program analyzermay select all food processing steps of the dessert course as they alluse the same ingredients and no heating instruction is included in thefood processing steps 3.0 to 3.4. The application of the partitioningrules C. may result in the following partition PI:

Ingredients:

-   140 g sugar-   500 g mixed frozen red berries-   20 g lemon juice-   1 egg white

Food processing steps:

-   I.0 Comment: A clean (and cold) bowl is needed for dessert recipe-   I.1 Place sugar into mixing bowl and pulverize 15 sec/speed 10-   I.2 Add mixed frozen red berries, lemon juice and egg white into    mixing bowl. Blend with aid of spatula 40 sec/speed 5.-   I.3 Insert butterfly whisk and mix 3 min/speed 3.5.-   I.4 Reserve in the refrigerator until ready to serve.-   I.5 Mixing Bowl is rinsed out with tap lukewarm water and ready to    be used. (not washed)

In the example, the program analyzer has added a new rinsing step 1.5according to the above recipe partitioning rule C.c.i which allowsreusing the mixing bowl (heating and stirring element) after thecompletion of partition I of the combined recipe program for other foodprocessing steps. Alternatively, the prepared berry foam dessert couldbe kept in the mixing bowl and the entire mixing bowl could be placed inthe refrigerator. In this case, no further rinsing step would beinserted and the following food processing steps would make use of afurther bowl or a further cooking apparatus with its own mixing bowl.

For example, for a second partition PII of the combined recipe program,the program analyzer may select food processing steps from the starterrecipe program as well steps from the main course recipe program. Theprogram analyzer applies recipe partitioning rules D. to the originalseparate recipe programs. The application of the partitioning rules D.may result in the following second partition PII for preparing thetomato soup and the tuna tomato sauce. The following first set ofingredients is identified as being common to both original separaterecipe programs.

Ingredients:

-   2 garlic cloves-   160 g onions-   2 carrots, cut in pieces-   60 g butter-   1000 g Tomatoes cut in small pieces-   2 tsp salt-   2 tsp dried oregano

Further, the steps 1.1 to 1.3 for processing such ingredients in thestarter recipe program correspond to the steps 2.1 to 2.3 in the maincourse recipe program. Therefore, according to the recipe partitioningrules D.a. to D.b.ii. the program analyzer consolidates those steps intothe following portion of the second partition PII:

Food processing steps:

-   II.1 Place garlic cloves, onions and carrots into mixing bowl and    chop 3 sec/speed 5. Scrape down sides of mixing bowl with spatula    (use rinsed mixing bowl if available).-   II.2 Add butter and sauté 3 min/120 C/speed 1.-   II.3 Add tomatoes, salt, dried oreganos and chop 7 sec/speed 5.

The combined recipe program instruction II.3 is a consolidated/mergedinstruction of the original separate recipe program instructions 1.3 and2.3. In the original separate program instruction the time controlparameter for the chopping step is 5 sec. In the consolidatedinstruction the chopping time for chopping the double quantity isincreased to 7 sec based on a corresponding predefined adjustment rule.

According to recipe partitioning rule D.b.iii. additional separationsteps are inserted because the program analyzer recognizes that the foodpreparation steps are forking apart for the starter and main course foodcomponents. Therefore, at this point only a portion of the so farprepared food components can be used for proceeding with either thestarter or the main course preparation. For example, the programanalyzer can make a decision regarding the next food processing stepsfor the second partition PII based temperature control parameters. Itmay decide for steps which have temperature control parameters closestto the current temperature of the mixing bowl to avoid energy consumingheating and cooling cycles. However, in this example, both options(starter and main course recipe program instructions) includetemperature control parameters of 100° C. Therefore, the programanalyzer may select by random whether to continue with the starter orwith main course related food processing steps. Other partitioningcriteria may also be used. For example, in case that there is no energysaving effect, the program analyzer may decide in accordance with theoriginal order of courses. Using this criterion for the example, theprogram analyzer selects food processing steps for the tomato soupstarter for continuation of the second partition PII. In this case, theprogram analyzer can compute the difference between the ingredientsincluded for the starter course (known from the original starter recipeprogram) and the currently prepared quantity and insert a combinedrecipe program instruction to reduce the current content of the mixingbowl accordingly (in the current example by 50%). Further, because theprogram analyzer knows that the current state of ingredients correspondsto the state indicated in which to continue with the original step 1.4,a further compound recipe instruction may be inserted to indicate to theuser that no bowl cleaning is required for continuing with the next foodprocessing step:

Food processing steps:

-   II.4 Remove mixing bowl and pour out half of its content and set    aside-   II.5 Without bowl cleaning, place back the mixing bowl on to the    cooking apparatus with the rest of the tomato preparation and    continue with the soup recipe.

Remaining ingredients to complete the tomato soup recipe are retrievedfrom the original starter recipe program:

-   300 g water-   1 stock cube-   100 g cream-   2-4 fresh basil leaves

The program analyzer may now add the food processing steps 1.4 to 1.6 ofthe original starter recipe program to the second partition PII.

Food processing steps:

-   II.6 Add water, stock cube and cook 15 min/100 C/speed 2 to the    bowl.-   II.7 Add cream, basil leaves and blend 1 min/speed 7 with measuring    cup on bowl lid.-   II.8 Set the soup aside.

It is to be noted that the heating step II.6 benefits from the fact thatthe bowl is still hot at the time when the water is added because ofprevious step II.2. In a multiple bowl environment step II.2 could beimplemented in that the soup stays within the bowl and a further bowlwould be used to finish the main course recipe. However, this mayinclude and additional cleaning or rinsing step and a heating step for acold bowl. The program analyzer knows from the original main courserecipe program that the remaining steps are not incompatible with thecurrent status of the bowl. Therefore, the program analyzer can insert afurther combined recipe program instruction II.9 in the second partitionPII to indicate to the user that the same bowl may be further used forthe remaining food processing steps. It is to be noted that again themixing bowl is still hot at this point in time, which is a positiveeffect for the overall energy balance (energy performance) of thecombined recipe program when executing the last heating step of thecombined recipe program in case the remaining food processing steps forthe main course are executed with the same bowl. That is, the energyconsumption is further reduced in this case.

Food processing steps:

-   II.9. Bowl is not rinsed out/place reserved ingredients from step    II.4 back into the mixing bowl.

Alternatively, in case of using a further mixing bowl or a furthercooking apparatus with a separate mixing bowl for the remaining foodprocessing steps, the completed starter food product may be kept in themixing bowl and the program analyzer may create a third partition PIIIof the combined recipe program. The third partition can then bedistributed to the further cooking apparatus. For the remaining foodprocessing steps, both alternatives are indicated.

The ingredients needed for the final food processing steps can bedetermined by the program analyzer from by deriving the delta of theingredients already used in the second partition PII and the completelist of ingredients for the main course from the original main courserecipe program.

Remaining ingredients to complete the main course as retrieved from theoriginal starter recipe program:

-   800 g water-   1 stock cube-   300 g plain white rice-   100 g yoghurt-   2 fresh basil leaves-   360 g of tuna in oil (3 small tins)

In the example, where a third partition PIII is created because the maincourse preparation is finished using a further mixing bowl (e.g., on afurther cooking apparatus), the step III.0 is inserted (instead of II.9)

Food processing steps in the combined recipe program for finishing themain course recipe:

-   III.0 place reserved ingredients from step II.4 into the mixing bowl

The program analyzer then continues with adding the remaining steps ofthe original main course recipe program to either the second partitionPII or to the third partition PIII dependent on the chosen embodiment.

Food processing steps:

-   II.10/III.1 Add to the reserved tomato preparation in the mixing    bowl 200 g of water and stock cube.-   II.11/III.2 In the steam cooker place a rectangular aluminum    container with the dry rice and 600 g of water, salt to taste and    cover it with an aluminum foil, close the steam cooker with the lid    and place it on the mixing bowl; cook the tomato sauce and rice by    programming 30 min/100 C/speed 1. Set steam cooker aside.-   II.12/III.3 Add to mixing bowl yoghurt, basil leaves, place    measuring cup on lid and blend 1 min/speed 7.-   II.13/III.4 Add the tuna and mix only with aid of spatula.-   II.14/III.5 Serve the tuna sauce over the cooked rice.

All three courses of the menu are now completed by executing theinstructions of the combined recipe program and the meal can be served.Table 2 summarizes the re-partitioned food processing steps with amapping to the corresponding food processing steps of the originalseparate recipe programs (column “Sep. steps”) and the controlparameters of the respective recipe program instructions.

FIG. 5B illustrates an example of the structure of the combined recipeprogram 502 including the combined program steps II.1 to II.3 by way ofexample. In the combined program steps the original separate programsteps 1.1/2.1, 1.2/2.2, and 1.3/2.3 are consolidated. In addition to theprogram structure of the separate recipe programs (cf. FIG. 5A) thecombined recipe program structure 502 may further include a field “P”for indicating the partition to which the respective program steps wereassigned. Further, in embodiments with multi-HSE use and/or distributedcooking with multiple cooking apparatuses, a field “HSE/CA” may includethe identifiers of the heating-and-stirring element and/or cookingapparatus to which the partition is to be applied or to be distributed(deployed).

TABLE 2 Combined Recipe Program Sep. Steps steps Sek. Min. Temp. SpeedI.1 3.1 15 10 I.2 3.2 40 5 I.3 3.3 3 3.5 I.4 3.4 I.5 II.1 1.1 3 5 & 2.1II.2 1.2 3 120 1 & 2.2 II.3 1.3 7 5 & 2.3 II.4 II.5 II.6 1.4 15 100 2II.7 1.5 1 7 II.8 II.9/III.0 II.10/III.1 II.11/III.2 2.5 30 100 1II.12/III.3 2.6 1 7 II.13/III.4 II.14/III.5 total 65 53 total sum 54.08(min)

As illustrated in the row total sum (min) of table 2, the execution timefor the combined recipe program vs. the total execution time of thesequentially executed separate recipe programs is reduced from 57.18 minto 54.08 min by 5.4%. Thereby, the time for cleaning the mixing bowlrequired in the separate execution scenario is even not considered. Thatis, the re-partitioning of the separate recipe programs into thecombined recipe program allows to reduce the overall food processingtime by identifying, aggregating and re-arranging such food processingsteps of the original recipe programs which comply with the respectiverepartitioning rules used by the program analyzer.

The cross-recipe repartitioning of the recipe programs also improves theoverall energy balance (or energy performance) of the food processingmethod when executed according to the repartitioned combined recipeprogram. For the above three course menu example, the combined recipeprogram reduces the energy consumption by approximately 3% compared tothe sequential execution of the separate recipe programs. This effect isbased on the initial separation of cold and warm food processing steps.

The following calculation illustrates how the reduced energy consumptioncan be estimated in the scenario with partitions I and II. As basis thefollowing information is used:

-   Heating duration of 11 water to 100° is 477 sec. and the energy    consumption is approximately 112 Wh-   Theoretic energy consumption for the heating is 93.4 Wh (based on    water heat capacity of 4.19 kJ/kg K and a temperature difference of    80° C.)-   Cooking of 11 with 100° C. (after reaching 100° C.) for 30 minutes    consumes 371 Wh-   Heat capacity for different ingredients    -   Water 4.19 kJ/kg K    -   Onions 3.77 kJ/kg K    -   Tomatoes 3.89 kJ/kg K    -   Carrots 3.64 kJ/kg K    -   Butter 2.51-2.62 kJ/kg K    -   Garlic 2.89 kJ/kg K

The main energy consumption is caused by the heating/cooking time duringthe tomato soup preparation and the main course. The other foodprocessing steps including the cleaning steps are not considered in theenergy balance as the consumption of these steps is quite low comparedto the heating consumption.

-   For the tomato soup approximately. 800 ml have to be heated up to    100° C. and cooked for 15 minutes (steps 1.4/II.6):    -   Heating up period 89 Wh (duration 380 sec.)    -   Cooking period 85 Wh (duration 520 sec.)    -   In total 174 Wh (duration 900 sec.)-   For the main course approximately 700 ml have to be heated up to    100° C. and cooked for 30 minutes (steps 2.5/II.11):    -   Heating up period 78 Wh (duration 333 sec.)    -   Cooking period 212 Wh (duration 1467 sec.)    -   In total 290 Wh (duration 1800 sec.)-   Each dedicated heating/sauté step (1.2 & 2.2) consumes approximately    23 Wh.-   The combined heating/sauté step (2nd Step.2) consumes approximately    31 Wh.-   For all other steps a total energy consumption of 12 Wh is assumed.

Based on the above consideration following approximate energyconsumption is determined:

-   Separate preparation (174+290+23+23+12) Wh=522 Wh-   Combined preparation (174+290+31+12) Wh=507 Wh-   Energy saving 522 Wh−507 Wh=15 Wh=>2.87%

As a result, the cross-recipe re-partitioning of separate recipeprograms with cold and warm food processing steps leads to a reductionof energy consumption when executing the repartitioned combined recipeprogram if the food processing steps can be rearranged according to therepartitioning rules/constraints used by the program analyzer.

In another embodiment, a further method, system and computer programproduct is provided for partitioning machine readable recipe programsfor one or more multi-function cooking apparatuses with at least twosimilar heating-and-stirring elements for joint processing of one ormore food products wherein the at least two similar heating-and-stirringelements have at least pairwise common subsets of cooking functions.

The method includes: providing, by a storage component, one or moreseparate recipe programs for preparing one or more food products whereinthe one or more recipe programs include machine readable recipe programinstructions configured to control functions of a particularmulti-function cooking apparatus for sequentially executing foodprocessing steps to prepare the one or more food products; identifying,by a program analyzer component, recipe program instructions which canbe executed by cooking functions supported by the at least two similarheating-and-stirring elements; partitioning, by the program analyzercomponent, the one or more recipe programs into recipe sub-programs inaccordance with predefined optimization constraints for optimizing thejoint processing wherein each sub-program includes recipe programinstructions associated with one of the at least two similarheating-and-stirring elements, and wherein at least one particularsub-program includes recipe program instructions which are executable bya cooking function supported by a particular heating-and-stirringelement operated by a particular multi-function cooking apparatus; andproviding the at least one particular sub-program to the particularmulti-function cooking apparatus operating the particularheating-and-stirring element to enable the particularheating-and-stirring element to participate in the optimized jointprocessing of the one or more food products when executing theparticular sub-program by the particular multi-function cookingapparatus.

In this embodiment, at least two heating-and-stirring elements areused—either by a single multi-function cooking apparatus (like forexample, the embodiment of FIG. 1A with two HSEs) or by a pluralitymulti-function cooking apparatuses (like for example, the embodiment ofFIG. 1B). Similar to the previously disclosed embodiments, the controlsystem implementing the components for executing the above method may bea separate system communicatively coupled to the one or more cookingapparatuses or it may be an integrated component of one of themulti-function cooking apparatuses. The control system may beimplemented in the same way as the system embodiment disclosed in FIG.2. However, in this embodiment, a partitioning and grouping of theoriginal separate program instructions occurs with regards to the twoavailable HSEs in that at least one sub-program (partition) is tailoredto be executed using the first HSE and at least a second sub-program(partition) is tailored to be executed using the second HSE. With twoHSEs it is always possible to group or merge recipe program instructionsinto partitions of a combined program where each of the HSEs is used forfood processing steps performed in a respective temperature range. Inother words, cool and warm food processing steps can be executed by thefirst and second HSE, respectively. This again saves energy by avoidingunnecessary heating or cooling steps compared to an embodiment with asingle HSE.

The predefined optimization constraints may include rules to optimizethe joint processing with regards to synchronization of operating the atleast two similar heating-and-stirring elements. In other words, foodprocessing time can be shortened by adjusting timing information in thecombined recipe instructions of the various sub-programs so thatunnecessary idle time of one of the HSEs can be avoided.

Further, the predefined optimization constraints may include rules tooptimize the joint processing with regards to the aggregate energyconsumption when operating the at least two similar heating-and-stirringelements. The energy saving is disclosed in details with regards to thepreviously disclosed example with the three course menu.

The particular sub-program may include recipe program instructionsrelated to processing food components with the same or similaringredients. That is, advantageously food processing steps associatedwith compatible ingredient information are grouped or merged into thesame sub-program (partition).

Further, the particular sub-program may include recipe programinstructions related to processing food components within a predefinedtemperature range. That is, advantageously food processing steps withsimilar temperature control parameter values are grouped or merged intothe same sub-program (partition).

The at least two similar heating-and-stirring elements can be operatedby the particular multi-function cooking apparatus and the respectivesub-programs may be executed sequentially by the particularmulti-function cooking apparatus. In other words, the samemulti-function cooking apparatus uses two or more HSEs alternating.

In one embodiment, a first one of the least two similarheating-and-stirring elements may be operated by the particularmulti-function cooking apparatus and a second one of the least twosimilar heating-and-stirring elements may be operated by a furthermulti-function cooking apparatus. In other words, the at least two HSEsare used and operated by at least two multi-function cookingapparatuses. In this embodiment, the method may further includedistributing the corresponding sub-programs to the particular and thefurther cooking apparatus in accordance with the heating-and-stirringelements operated by the cooking apparatuses, respectively. Thereby, theparticular sub-program may include recipe program instructionsconfigured to complete processing of a particular food component beforethe execution of the further sub-program starts on the further cookingapparatus wherein the further cooking apparatus may request theparticular food component as an input. Thereby, the synchronizationbetween the at least two multi-function cooking apparatuses is improvedin joint or parallel cooking scenarios where multiple cookingapparatuses are used in parallel for joint processing of one or morefood components or food products.

FIG. 6 is a diagram that shows an example of a generic computer device900 and a generic mobile computer device 950, which may be used with thetechniques described here. Computing device 900 relates in an exemplaryembodiment to the control system 100 (cf. FIG. 1). Computing device 950is intended to represent various forms of mobile devices, such aspersonal digital assistants, cellular telephones, smart phones, andother similar computing devices. In an exemplary embodiment of thisdisclosure the computing device 950 may serve as a frontend controldevice of the control system 900. The components shown here, theirconnections and relationships, and their functions, are meant to beexemplary only, and are not meant to limit implementations of thesubject matter described and/or claimed in this document.

Computing device 900 includes a processor 902, memory 904, a storagedevice 906, a high-speed interface 908 connecting to memory 904 andhigh-speed expansion ports 910, and a low speed interface 912 connectingto low speed bus 914 and storage device 906. Each of the components 902,904, 906, 908, 910, and 912, are interconnected using various busses,and may be mounted on a common motherboard or in other manners asappropriate. The processor 902 can process instructions for executionwithin the computing device 900, including instructions stored in thememory 904 or on the storage device 906 to display graphical informationfor a GUI on an external input/output device, such as display 916coupled to high speed interface 908. In other implementations, multipleprocessors and/or multiple buses may be used, as appropriate, along withmultiple memories and types of memory. Also, multiple computing devices900 may be connected, with each device providing portions of thenecessary operations (e.g., as a server bank, a group of blade servers,or a multi-processor system).

The memory 904 stores information within the computing device 900. Inone implementation, the memory 904 is a volatile memory unit or units.In another implementation, the memory 904 is a non-volatile memory unitor units. The memory 904 may also be another form of computer-readablemedium, such as a magnetic or optical disk.

The storage device 906 is capable of providing mass storage for thecomputing device 900. In one implementation, the storage device 906 maybe or contain a computer-readable medium, such as a floppy disk device,a hard disk device, an optical disk device, or a tape device, a flashmemory or other similar solid state memory device, or an array ofdevices, including devices in a storage area network or otherconfigurations. A computer program product can be tangibly embodied inan information carrier. The computer program product may also containinstructions that, when executed, perform one or more methods, such asthose described above. The information carrier is a computer- ormachine-readable medium, such as the memory 904, the storage device 906,or memory on processor 902.

The high speed controller 908 manages bandwidth-intensive operations forthe computing device 900, while the low speed controller 912 manageslower bandwidth-intensive operations. Such allocation of functions isexemplary only. In one implementation, the high-speed controller 908 iscoupled to memory 904, display 916 (e.g., through a graphics processoror accelerator), and to high-speed expansion ports 910, which may acceptvarious expansion cards (not shown). In the implementation, low-speedcontroller 912 is coupled to storage device 906 and low-speed expansionport 914. The low-speed expansion port, which may include variouscommunication ports (e.g., USB, Bluetooth, ZigBee, WLAN, Ethernet,wireless Ethernet) may be coupled to one or more input/output devices,such as a keyboard, a pointing device, a scanner, or a networking devicesuch as a switch or router, e.g., through a network adapter.

The computing device 900 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as astandard server 920, or multiple times in a group of such servers. Itmay also be implemented as part of a rack server system 924. Inaddition, it may be implemented in a personal computer such as a laptopcomputer 922. Alternatively, components from computing device 900 may becombined with other components in a mobile device (not shown), such asdevice 950. Each of such devices may contain one or more of computingdevice 900, 950, and an entire system may be made up of multiplecomputing devices 900, 950 communicating with each other.

Computing device 950 includes a processor 952, memory 964, aninput/output device such as a display 954, a communication interface966, and a transceiver 968, among other components. The device 950 mayalso be provided with a storage device, such as a microdrive or otherdevice, to provide additional storage. Each of the components 950, 952,964, 954, 966, and 968, are interconnected using various buses, andseveral of the components may be mounted on a common motherboard or inother manners as appropriate.

The processor 952 can execute instructions within the computing device950, including instructions stored in the memory 964. The processor maybe implemented as a chipset of chips that include separate and multipleanalog and digital processors. The processor may provide, for example,for coordination of the other components of the device 950, such ascontrol of user interfaces, applications run by device 950, and wirelesscommunication by device 950.

Processor 952 may communicate with a user through control interface 958and display interface 956 coupled to a display 954. The display 954 maybe, for example, a TFT LCD (Thin-Film-Transistor Liquid Crystal Display)or an OLED (Organic Light Emitting Diode) display, or other appropriatedisplay technology. The display interface 956 may comprise appropriatecircuitry for driving the display 954 to present graphical and otherinformation to a user. The control interface 958 may receive commandsfrom a user and convert them for submission to the processor 952. Inaddition, an external interface 962 may be provide in communication withprocessor 952, so as to enable near area communication of device 950with other devices. External interface 962 may provide, for example, forwired communication in some implementations, or for wirelesscommunication in other implementations, and multiple interfaces may alsobe used.

The memory 964 stores information within the computing device 950. Thememory 964 can be implemented as one or more of a computer-readablemedium or media, a volatile memory unit or units, or a non-volatilememory unit or units. Expansion memory 984 may also be provided andconnected to device 950 through expansion interface 982, which mayinclude, for example, a SIMM (Single In Line Memory Module) cardinterface. Such expansion memory 984 may provide extra storage space fordevice 950, or may also store applications or other information fordevice 950. Specifically, expansion memory 984 may include instructionsto carry out or supplement the processes described above, and mayinclude secure information also. Thus, for example, expansion memory 984may act as a security module for device 950, and may be programmed withinstructions that permit secure use of device 950. In addition, secureapplications may be provided via the SIMM cards, along with additionalinformation, such as placing the identifying information on the SIMMcard in a non-hackable manner.

The memory may include, for example, flash memory and/or NVRAM memory,as discussed below. In one implementation, a computer program product istangibly embodied in an information carrier. The computer programproduct contains instructions that, when executed, perform one or moremethods, such as those described above. The information carrier is acomputer- or machine-readable medium, such as the memory 964, expansionmemory 984, or memory on processor 952 that may be received, forexample, over transceiver 968 or external interface 962.

Device 950 may communicate wirelessly through communication interface966, which may include digital signal processing circuitry wherenecessary. Communication interface 966 may provide for communicationsunder various modes or protocols, such as GSM voice calls, SMS, EMS, orMMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others.Such communication may occur, for example, through radio-frequencytransceiver 968. In addition, short-range communication may occur, suchas using a Bluetooth, WiFi, ZigBee or other such transceiver (notshown). In addition, GPS (Global Positioning System) receiver module 980may provide additional navigation- and location-related wireless data todevice 950, which may be used as appropriate by applications running ondevice 950.

Device 950 may also communicate audibly using audio codec 960, which mayreceive spoken information from a user and convert it to usable digitalinformation. Audio codec 960 may likewise generate audible sound for auser, such as through a speaker, e.g., in a handset of device 950. Suchsound may include sound from voice telephone calls, may include recordedsound (e.g., voice messages, music files, etc.) and may also includesound generated by applications operating on device 950.

The computing device 950 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as acellular telephone 980. It may also be implemented as part of a smartphone 982, personal digital assistant, or other similar mobile device.

Various implementations of the systems and techniques described here canbe realized in digital electronic circuitry, integrated circuitry,specially designed ASICs (application specific integrated circuits),computer hardware, firmware, software, and/or combinations thereof.These various implementations can include implementation in one or morecomputer programs that are executable and/or interpretable on aprogrammable system including at least one programmable processor, whichmay be special or general purpose, coupled to receive data andinstructions from, and to transmit data and instructions to, a storagesystem, at least one input device, and at least one output device.

These computer programs (also known as programs, software, softwareapplications or code) include machine instructions for a programmableprocessor, and can be implemented in a high-level procedural and/orobject-oriented programming language, and/or in assembly/machinelanguage. As used herein, the terms “machine-readable medium”“computer-readable medium” refers to any computer program product,apparatus and/or device (e.g., magnetic discs, optical disks, memory,Programmable Logic Devices (PLDs)) used to provide machine instructionsand/or data to a programmable processor, including a machine-readablemedium that receives machine instructions as a machine-readable signal.The term “machine-readable signal” refers to any signal used to providemachine instructions and/or data to a programmable processor.

To provide for interaction with a user, the systems and techniquesdescribed here can be implemented on a computer having a display device(e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor)for displaying information to the user and a keyboard and a pointingdevice (e.g., a mouse or a trackball) by which the user can provideinput to the computer. Other kinds of devices can be used to provide forinteraction with a user as well; for example, feedback provided to theuser can be any form of sensory feedback (e.g., visual feedback,auditory feedback, or tactile feedback); and input from the user can bereceived in any form, including acoustic, speech, or tactile input.

The systems and techniques described here can be implemented in acomputing device that includes a back end component (e.g., as a dataserver), or that includes a middleware component (e.g., an applicationserver), or that includes a front end component (e.g., a client computerhaving a graphical user interface or a Web browser through which a usercan interact with an implementation of the systems and techniquesdescribed here), or any combination of such back end, middleware, orfront end components. The components of the system can be interconnectedby any form or medium of digital data communication (e.g., acommunication network). Examples of communication networks include alocal area network (“LAN”), a wide area network (“WAN”), and theInternet.

The computing device can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other.

A number of embodiments have been described. Nevertheless, it will beunderstood that various modifications may be made without departing fromthe spirit and scope of the present disclosure.

In addition, the logic flows depicted in the figures do not require theparticular order shown, or sequential order, to achieve desirableresults. In addition, other steps may be provided, or steps may beeliminated, from the described flows, and other components may be addedto, or removed from, the described systems. Accordingly, otherembodiments are within the scope of the following claims.

What is claimed is:
 1. A control system for partitioning machinereadable recipe programs wherein the machine readable programs, whenexecuted by one or more multi-function cooking apparatuses cause the oneor more multi-function cooking apparatuses to process one or more foodproducts, the system comprising: a recipe program interface configuredto receive, from a storage component, one or more separate recipeprograms for preparing one or more food products, wherein the one ormore separate recipe programs include machine readable recipe programinstructions configured to control functions of a particularmulti-function cooking apparatus for executing food processing steps toprepare the one or more food products in accordance with the one or moreseparate recipe programs; a partitioning module configured to identify,in accordance with predefined partitioning rules, subsets of recipeprogram instructions in the one or more recipe programs wherein at leasta first subset includes recipe program instructions for executing foodprocessing steps with first compatible ingredient information, and atleast a second subset includes recipe program instructions for executingfood processing steps with second compatible ingredient information; agenerator module configured to generate a combined recipe program withrecipe program instructions covering all food processing stepsassociated with the one or more separate recipe programs wherein thecombined recipe program has at least a first partition comprising the atleast first subset, and has at least a second partition comprising theat least second subset; and the recipe program interface furtherconfigured to provide the first and second partitions to the one or moremulti-function cooking apparatuses for execution.
 2. The system of claim1, wherein the recipe program instructions of the at least first subsetrelate to food processing steps performed at one or more temperatures ina first temperature range, and wherein the recipe program instructionsof the at least second subset relate to food processing steps performedat one or more temperatures in a different second temperature range. 3.The system of claim 1, wherein the generator module is furtherconfigured to merge a plurality of recipe program instructions of theone or more separate recipe programs related to compatible ingredientsinto a single recipe program instruction of the combined recipe program.4. The system of claim 3, wherein the merged single recipe programinstruction of the combined recipe program includes a food processingtime control parameter adjusted in accordance with a predefinedadjustment rule.
 5. The system of claim 1, wherein the generator moduleis further configured to: add, in accordance with the predefinedpartitioning rules, one or more transitioning recipe instructions to thefirst or second partition, wherein a particular transitioning recipeinstruction is determined based on a comparison of the one or moreseparate recipe programs with the partitions of the generated combinedrecipe program; and remove, in accordance with the predefinedpartitioning rules, one or more original separate recipe instructionsfrom the first or second partition, wherein a particular originalseparate recipe instruction is determined based on a comparison of theone or more separate recipe programs with the partitions of thegenerated combined recipe program.
 6. The system claim 1, wherein thefirst and second partitions are provided to the particularmulti-function cooking apparatus and the first partition is to beexecuted with at least a first heating-and-stirring element of theparticular multi-function cooking apparatus, and the second partition isto be executed with at least a second heating-and-stirring element ofthe particular multi-function cooking apparatus.
 7. Acomputer-implemented method for partitioning machine readable recipeprograms wherein the machine readable programs, when executed by one ormore multi-function cooking apparatuses, cause the one or moremulti-function cooking apparatuses to process one or more food products,the method comprising: receiving, from a storage component, one or moreseparate recipe programs for preparing one or more food products,wherein the one or more separate recipe programs include machinereadable recipe program instructions configured to control functions ofa particular multi-function cooking apparatus for sequentially executingfood processing steps to prepare the one or more food products inaccordance with the one or more separate recipe programs; identifying,by a program analyzer component in accordance with predefinedpartitioning rules, subsets of recipe program instructions in the one ormore recipe programs, wherein at least a first subset includes recipeprogram instructions for executing food processing steps with firstcompatible ingredient information, and at least a second subset includesrecipe program instructions for executing food processing steps withsecond compatible ingredient information; generating a combined recipeprogram with recipe program instructions for all food processing stepsassociated with the one or more separate recipe programs wherein thecombined recipe program has at least a first partition comprising the atleast first subset, and has at least a second partition comprising theat least second subset; and providing the first and second partitions tothe one or more multi-function cooking apparatuses for execution.
 8. Themethod of claim 7, wherein the recipe program instructions of the atleast first subset relate to food processing steps performed at one ormore temperatures in a first temperature range, and wherein the recipeprogram instructions of the at least second subset relate to foodprocessing steps performed at one or more temperatures in a secondtemperature range which is different from the first temperature range.9. The method of claim 7, further comprising: adding, in accordance withthe predefined partitioning rules, one or more transitioning recipeinstructions to the first or second partition, wherein a particulartransitioning recipe instruction is determined based on a comparison ofthe one or more separate recipe programs with the partitions of thegenerated combined recipe program; and removing, in accordance with thepredefined partitioning rules, one or more original separate recipeinstructions from the first or second partition, wherein a particularoriginal separate recipe instruction is determined based on a comparisonof the one or more separate recipe programs with the partitions of thegenerated combined recipe program.
 10. The method of claim 7, whereinthe first and second partitions are provided to the particularmulti-function cooking apparatus and the first partition is to beexecuted with at least a first heating-and-stirring element of theparticular multi-function cooking apparatus, and the second partition isto be executed with at least a second heating-and-stirring element ofthe particular multi-function cooking apparatus.
 11. The method of claim7, wherein the first partition is provided to the particularmulti-function cooking apparatus to be executed with at least a firstheating-and-stirring element of the particular multi-function cookingapparatus, and the second partition is provided to a furthermulti-function cooking apparatus to be executed with at least a secondheating-and-stirring element of the further multi-function cookingapparatus.
 12. The method of claim 11, wherein the first partitionincludes recipe program instructions configured to complete processingof a particular food component before the execution of a furtherpartition starts on the further multi-function cooking apparatus whereinthe further multi-function cooking apparatus includes the particularfood component as an input.
 13. The method of claim 11, wherein thepredefined partitioning rules further include rules to generate thepartitions with regards to an improved synchronization of operating theat least two multi-function cooking apparatuses.
 14. The method of claim7, wherein the predefined partitioning rules include rules to re-arrangefood processing steps so that the re-arranged food processing stepsreduce aggregate energy consumption for the preparation of the one ormore food products when operating the one or more multi-function cookingapparatuses at different temperatures.
 15. The method of claim 7,wherein a particular partition includes recipe program instructionsrelated to processing food components with the same ingredients.
 16. Acomputer program product for partitioning machine readable recipeprograms for one or more multi-function cooking apparatuses, thecomputer program product comprising computer readable instructions thatwhen loaded into a memory of a computing device and executed by at leastone processor of the computing device cause the computing device toreceive, from a storage component, one or more separate recipe programsfor preparing one or more food products, wherein the one or moreseparate recipe programs include machine readable recipe programinstructions configured to control functions of a particularmulti-function cooking apparatus for sequentially executing foodprocessing steps to prepare the one or more food products in accordancewith the one or more separate recipe programs; identify, by a programanalyzer component in accordance with predefined partitioning rules,subsets of recipe program instructions in the one or more recipeprograms, wherein at least a first subset includes recipe programinstructions for executing food processing steps with first compatibleingredient information, and at least a second subset includes recipeprogram instructions for executing food processing steps with secondcompatible ingredient information; generate a combined recipe programwith recipe program instructions for all food processing stepsassociated with the one or more separate recipe programs wherein thecombined recipe program has at least a first partition comprising the atleast first subset, and has at least a second partition comprising theat least second subset; and provide the first and second partitions tothe one or more multi-function cooking apparatuses for execution. 17.The computer program product of claim 16, wherein the recipe programinstructions of the at least first subset relate to food processingsteps performed at one or more temperatures in a first temperaturerange, and wherein the recipe program instructions of the at leastsecond subset relate to food processing steps performed at one or moretemperatures in a second temperature range which is different from thefirst temperature range.
 18. The computer program product of claim 16,wherein the first and second partitions are provided to the particularmulti-function cooking apparatus and the first partition is to beexecuted with at least a first heating-and-stirring element of theparticular multi-function cooking apparatus, and the second partition isto be executed with at least a second heating-and-stirring element ofthe particular multi-function cooking apparatus.
 19. The computerprogram product of claim 16, wherein the first partition is provided tothe particular multi-function cooking apparatus to be executed with atleast a first heating-and-stirring element of the particularmulti-function cooking apparatus, and the second partition is providedto a further multi-function cooking apparatus to be executed with atleast a second heating-and-stirring element of the furthermulti-function cooking apparatus.
 20. The computer program product ofclaim 16, wherein the predefined partitioning rules include rules tore-arrange food processing steps so that the re-arranged food processingsteps reduce aggregate energy consumption for the preparation of the oneor more food products when operating the one or more multi-functioncooking apparatuses at different temperatures.